Table Creator
Version 1.0
KaioShin 06.05.08

Introduction
------------

After copy and pasting together a 1500 entry table for Shin Megami Tensei (GBA)
I got pretty sick of the stupid gruntwork. There have been attempts at
more or less automatic table makers in the past, but what I tried certainly
didn't satisfied my expectations. Most of the programs were from times when
translations were almost always done for the NES and tables only consisted of a
few Kana and up to 255 entries.
For newer games with tables consisting of over a thousand kanji, they were
completely useless. So I sat down and started work on Table Creator to remedy
this problem.

Also bundled with the program is a tiny tool that I wrote that will switch the
table's endianess. If you have a ROM in which the entry for 0001 is stored as
0100 just create the table as if it was normally ordered and use the endianess
utility on it afterwards.
I'm too lazy to integrate the functionality into the main program. The code is
quite messy and largely untested, so I rather have it seperate for now.

Requirements
------------

The program was written in C#, and therefore needs the .NET framework to function.
Google for it if you don't have it already.

InputFile
---------

These days most hackers don't type down their tables kanji by kanji themselves.
Usually one or several persons with more extensive Japanese knowledge type down
all the Kanji into a simple text file for the hacker to transfer into an actual
table. This is were Table Creator comes to the rescue.

The Japanese characters should be encoded in SJIS. Currently there is no unicode
support planned. 

How to Use
----------

Table Creator has two modes. 


-b InputFile OutputFile StartEntry [NumberOfEntries]

This creates a new table file, using the characters within InputFile.

StartEntry is the table-index at which the table starts. 
StartEntry and NumberOfEntries will be interpreted as hexadecimal.

Example: "TableCreator -b kanjilist.txt table.tbl 0 100"

If kanjilist.txt contains text like: "ABCDEFGH" it will create a table starting
with:

0000=A
0001=B
...
0100=

Linebreaks in the InputFile will be ignored.
If NumberOfEntries is omitted, it will just fill the whole table with as many entries
as there are chars in the Inputfile. 


-e FileName NumberOfEntries

This creates a skeleton table that has NumberOfEntries table entries starting from
0000. The entries will always be filled up with zeroes until they are 4 digits long.
Useful if you still have to do the table yourself for whatever reason and you want
at least get half the work done early. Number of Entries will be interpreted as hex.

Example: "TableCreator -e Table.tbl 100"

This will create a new table file called "Table.tbl" with $100 empty entries.

0000=
0001=
...

Warning: These will both always create a new file, even if an older one already
exists. Make sure you don't accidentally overwrite tables you still need later on. 

table_endianess
---------------

Tiny utility that I wrote to handle tables with switched endianess. If you have a
ROM in which the value 0001 is stored as 0100, just create the table normally with
table creator as if it was standard order and then use table_endianess on it.
It will switch all table values. 

Usage:
table_endianess InputFile OutputFile

The tool is largely untested and not very error safe. Only use it at freshly created
tables from TableCreator and it should work as intended. Enter longer Control Codes
into the table after the endianess switch. I know that the programm will choke on the
table if an entry is longer than 3 or 4 bytes.

Changelog
---------

11/05/2008  	Update:
		Changed default behavious of TableCreator
		Added table_endianess tool to release package
06/05/2008  	Initial Release

Todo:
-----

-Unicode Support (Maybe?)
-Integrate table_endianess functionality into main program
-Code cleanup for Open Source release?